<!DOCTYPE html>
<html lang="en">

  <head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>其它强制转换字符串</title>
  </head>

  <body>

  </body>
  <script>
    /* 
    其它类型转换字符串：
    1 toString()方法：
       1.1 该方法不会影响原变量，会生成新的数值变量
       1.2 如果是null，undefined使用该方法,会报错
    2 String()方法：
      2.1 使用String()函数做强制类型转换时，对于Number和Boolean实际上就是调用的toString()方法
      2.2 但是对于null和undefined，就不会调用toString()方法，
                它会将 null 直接转换为 "null"，
                将 undefined 直接转换为 "undefined"
    3.字符串拼接
      3.1 隐式转换：其它的数据类型和字符串通过运算符+进行拼接时，会自动转换为字符串类型

    */
    var num = 123;
    var bool = true;
    var obj = null;
    var message = undefined;

    //toString()方法
    console.log(num.toString()); //123
    console.log(bool.toString()); //true
    //console.log(obj.toString()); //报错
    //console.log(message.toString()); //报错


    //String()方法
    console.log(String(num)); //123
    console.log(String(bool)); //true
    console.log(String(obj)); //null
    console.log(String(message)); //undefined

    //字符串拼接:隐式转换：其它的数据类型和字符串通过运算符+进行拼接时，会自动转换为字符串类型
    console.log(num + ''); //123
    console.log(bool + ''); //true
    console.log(obj + ''); //null
    console.log(message + ''); //undefined

  </script>

</html>